1. Field of the Invention
The present invention relates generally to a data processing system, computer implemented method, and computer program product code for a data processing system. More specifically, the present invention relates to a data processing system, computer implemented method, and computer program product code for generating an immersive three dimensional computer generated environment within a data processing system.
2. Description of the Related Art
Immersive three dimensional computer generated environments are being increasingly utilized for a variety of applications. Computer generated environments, sometimes referred to as virtual or ‘CG’ environments, have found use in entertainment applications, such as video games and movies. These computer generated environments are being increasingly used in geography, construction and urban studies involving site location analysis, emergency facilities planning, design review, marketing, and the like. Computer generated environments have even been used to show anatomical structures as a training tool for medical professionals.
Regardless of the specific application for which a computer generated environment has been developed, developers of these computer generated environments face a common problem: determining and modeling distances to remote objects quickly and simultaneously. In order to generate accurate modeling of a real environment, a developer of the virtual environment must be able to determine the spatial relation between various objects in the real environment. Currently, various forms of three dimensional scanners are used to determine this information.
A three dimensional scanner analyzes a real-world object or environment to collect data on the object's shape, and further analyze the relationship between that object and other objects in the environment. The collected data is then used to construct the computer generated, or virtual, environment. The three dimensional scanner can utilize a variety of different technologies, each having its own limitations, advantages and costs.
A time-of-flight three dimensional scanner is a scanner type that emits a high intensity light source, such as a laser, and measures the amount of time elapsed before the emitted light is reflected from the modeled object and seen by a detector. Thus, a time-of-flight three dimensional scanner uses a laser light to scan the environment to be modeled. Because the speed of light is a known constant, recording the elapsed time between emission and detection allows for an easy calculation of the distance to a modeled object. Therefore, the accuracy of a time-of-flight three dimensional scanner depends on the precision with which the scanner can measure the elapsed time. While time-of-flight three dimensional scanners are capable of operating over very long distances, they suffer from relative inaccuracy due to difficulties in timing the high speed light waves.
A triangulation three dimensional scanner reflects a laser off of the modeled object, and detects the reflection of the laser at a third location. By knowing the distance between the emitting laser and the detector, as well as the angle formed between the modeled object, the emitter and the detector, a trigonometric relationship can be easily calculated to find the distance between any of the three objects. Triangulation three dimensional scanner are relatively more accurate than a time-of-flight scanner, however, the distances over which they can be effectively used is much less than that of the time-of-flight scanner.
A structured light three dimensional scanner projects a pattern of light on the subject records deformations of the reflected pattern. A camera, offset slightly from the pattern projector, looks at the shape of the reflected pattern uses a technique similar to triangulation to calculate the distance of every reflected point of the pattern. While a structured light three dimensional scanner is able to quickly and accurately scan a large area, the cost of such a system is often preclusive for large scale applications.
Despite the availability of various methods of determining relative distances for the creation of computer generated environments, there remains a need for improvement. It would be beneficial for the developer of a virtual computer generated environment to be able to quickly and accurately assimilate the various relative positions and sizes of objects to be input into the computer generated environment in a cost effective manner.